// 面试题 02.02. 返回倒数第 k 个节点

// 实现一种算法，找出单向链表中倒数第 k 个节点。返回该节点的值。

#include <stdio.h>

struct ListNode
{
    int val;
    struct ListNode *next;
};

// 双指针法
int kthToLast(struct ListNode *head, int k)
{
    struct ListNode *p = head;
    struct ListNode *m = head;

    while (k)
    {
        m = m->next;
        k--;
    }

    while (m != NULL)
    {
        p = p->next;
        m = m->next;
    }

    int res = p->val;

    return res;
}